package com.dds.system.domain.app;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.dds.common.annotation.Excel;
import com.dds.common.core.domain.BaseEntity;

/**
 * 会员对象 app_user
 *
 * @author gaolianjie
 * @date 2021-04-01
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor(staticName = "of", force = true)
public class AppUser extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 用户主键
     */
    private String userId;

    /**
     * 用户名（手机号）
     */
    @Excel(name = "用户名", readConverterExp = "手=机号")
    private String username;

    /**
     * 密码
     */
    @Excel(name = "密码")
    private String password;

    /**
     * 用户昵称
     */
    @Excel(name = "用户昵称")
    private String nickName;

    /**
     * 真实名称
     */
    @Excel(name = " 真实名称")
    private String realName;

    /**
     * 性别 0女 1男
     */
    @Excel(name = "性别 0女 1男")
    private String userSex;

    /**
     * 用户头像
     */
    @Excel(name = "用户头像")
    private String userPhoto;

    /**
     * 客户端id
     */
    @Excel(name = "客户端id")
    private String deviceId;

    /**
     * 设备类型：0Android，1ios，3其他
     */
    @Excel(name = "设备类型：0Android，1ios，3其他")
    private Integer deviceType;

    /**
     * 加密盐值
     */
    @Excel(name = "加密盐值")
    private String salt;

    /**
     * 用户状态0正常1冻结
     */
    @Excel(name = "用户状态0正常1冻结")
    private Integer status;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date registTime;

    /**
     * 平台类型
     */
    @Excel(name = "平台类型")
    private String customerType;

    /**
     * 当前可用积分汇总
     */
    @Excel(name = "当前可用积分汇总")
    private Long score;

    /**
     * 当前可用余额汇总
     */
    @Excel(name = "当前可用余额汇总")
    private Long wallet;

    /**
     * 历史积分汇总
     */
    @Excel(name = "历史积分汇总")
    private Long allScore;

    /**
     * 历史余额汇总
     */
    @Excel(name = "历史余额汇总")
    private Long allWallet;

    /**
     * 最后提现日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后提现日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastWithdraw;

    /**
     * 用户邀请码
     */
    @Excel(name = "用户邀请码")
    private String inviteCode;

    @Excel(name = "推荐人用户名")
    private String auUsername;

    @Excel(name = "推荐人昵称")
    private String auNickName;

    @Excel(name = "推荐人真实姓名")
    private String auRealName;

    private String startTime;

    private String endTime;

    private BigDecimal validScore;
}
